In an increasingly networked world, more and more traffic, such as data, voice, and video, is transmitted over public and proprietary networks. When routing traffic through the network, it may be desirable to be able to assign different bandwidth limits to different types of traffic created and/or consumed by each user as the traffic traverses the network. In cases where the uplink bandwidth is shared by a large number of users, such as DSL or Cable Modem termination systems, it is important for a service provider to guarantee a degree of fairness in terms of how the uplink bandwidth is consumed by individual users. It may also be necessary to differentiate the amount of bandwidth allocated for different classes of users and/or applications. For example, some users may pay a premium rate for higher bandwidth or lower latency access to the network. Some applications may require stringent limits on end-to-end traffic delay while other applications may require minimal bandwidth guarantees. For example, because streaming video and voice data, when it is delayed, can result in a noticeable degradation in quality to the end-user, it may be desirable to ensure that this type of type of traffic receives a larger share of the available bandwidth by limiting other types of traffic. Thus, service providers may find it necessary to be able to assign individual rate limits for large number of network traffic flows, where each flow is associated with a particular user class and/or a particular application.
In Internet Protocol (IP) packet-based networks, each packet may include a header section, a portion of which may be used to indicate the source, destination, traffic class and application identifiers associated with the packet that define the “flow” to which the packet is assigned. A router at the edge of a network may set the flow for a packet. Routers in the core of the network may identify a flow to which traffic belongs and handle the flow accordingly.